package com.yzd.learnjava.generics;

public class NoSelfBounded<T> {
	T element ;
	NoSelfBounded<T> set(T arg){
		element = arg;
		return this;
	}
	
	T get() {
		return element;
	}

}

class A2 extends NoSelfBounded<A2>{}

class B2 extends NoSelfBounded<A2>{}

class C2 extends NoSelfBounded<C2>{
	C2 setAndGet(C2 arg) {
		set(arg);
		return get();
	}
}

class D2{}

class E2 extends NoSelfBounded<D2>{}
